Wyatt Langford cracked a three-run shot, and Nathan Eovaldi allowed three runs and struck out nine over six innings as the Texas Rangers held on to defeat the San Diego Padres 4-3.